Development Models > Imperative Programming Model > Imperative Programming Model for OPC UA Alarms & Conditions > Browsing for Information (OPC UA Alarms & Conditions) > Browsing for OPC UA Notifiers |
In order to browse for notifiers, you can use pre-made browse parameters available in the UABrowseParameters.Notifiers static property, and call the IEasyUAClient.Browse method. Alternatively, you can use a dedicated extension method, IEasyUAClient.BrowseNotifiers, to perform browsing for notifiers easily.
// This example shows how to browse objects under the "Objects" node and display notifiers. using System; using OpcLabs.EasyOpc.UA; using OpcLabs.EasyOpc.UA.AddressSpace; using OpcLabs.EasyOpc.UA.AddressSpace.Standard; using OpcLabs.EasyOpc.UA.OperationModel; namespace UADocExamples.AlarmsAndConditions { class BrowseNotifiers { public static void Overload2() { // Start browsing from the "Objects" node. try { BrowseFrom(UAObjectIds.ObjectsFolder); } catch (UAException uaException) { Console.WriteLine($"*** Failure: {uaException.GetBaseException().Message}"); } Console.WriteLine(); Console.WriteLine("Finished."); } private static void BrowseFrom(UANodeDescriptor nodeDescriptor) { // Define which server we will work with. UAEndpointDescriptor endpointDescriptor = "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer"; Console.WriteLine(); Console.WriteLine(); Console.WriteLine($"Parent node: {nodeDescriptor}"); // Instantiate the client object. var client = new EasyUAClient(); // Obtain notifiers. UANodeElementCollection notifierNodeElementCollection = client.BrowseNotifiers( endpointDescriptor, nodeDescriptor); // Display notifiers. if (notifierNodeElementCollection.Count != 0) { Console.WriteLine(); Console.WriteLine("Notifiers:"); foreach (UANodeElement notifierNodeElement in notifierNodeElementCollection) Console.WriteLine(notifierNodeElement); } // Obtain objects. UANodeElementCollection objectNodeElementCollection = client.BrowseObjects( endpointDescriptor, nodeDescriptor); // Recurse. foreach (UANodeElement objectNodeElement in objectNodeElementCollection) BrowseFrom(objectNodeElement); } // Example output (truncated): // // //Parent node: ObjectsFolder // // //Parent node: Server // //Notifiers: //Green -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Green (Object) //Yellow -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Yellow (Object) // // //Parent node: Server_ServerCapabilities //... } }
# This example shows how to browse objects under the "Objects" node and display notifiers. #requires -Version 5.1 using namespace OpcLabs.EasyOpc.UA using namespace OpcLabs.EasyOpc.UA.AddressSpace.Standard using namespace OpcLabs.EasyOpc.UA.Navigation.Parsing; using namespace OpcLabs.EasyOpc.UA.OperationModel function BrowseNotifiersFrom([UANodeDescriptor]$nodeDescriptor) { # Define which server we will work with. [UAEndpointDescriptor]$endpointDescriptor = "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer" Write-Host Write-Host Write-Host "Parent node: $($nodeDescriptor)" # Instantiate the client object. $client = New-Object EasyUAClient # Obtain event sources. $notifierNodeElementCollection = [IEasyUAClientExtension]::BrowseNotifiers($client, $endpointDescriptor, $nodeDescriptor) # Display event sources. if ($notifierNodeElementCollection.Count -ne 0) { Write-Host Write-Host "Notifiers:" foreach ($notifierNodeElement in $notifierNodeElementCollection) { Write-Host $notifierNodeElement } } # Obtain objects. $objectNodeElementCollection = [IEasyUAClientExtension]::BrowseObjects($client, $endpointDescriptor, $nodeDescriptor) # Recurse. foreach ($objectNodeElement in $objectNodeElementCollection) { BrowseNotifiersFrom($objectNodeElement) } } # The path below assumes that the current directory is [ProductDir]/Examples-NET/PowerShell/Windows . Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcUA.dll" Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcUAComponents.dll" # Start browsing from the "Objects" node. try { [UANodeDescriptor]$startingNodeDescriptor = [UAObjectIds]::ObjectsFolder BrowseNotifiersFrom $startingNodeDescriptor } catch [UAException] { Write-Host "*** Failure: $($PSItem.Exception.GetBaseException().Message)" return } Write-Host Write-Host "Finished." # Example output (truncated): # # #Parent node: ObjectsFolder # # #Parent node: Server # #Notifiers: #Green -> nsu=http:#opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Green (Object) #Yellow -> nsu=http:#opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Yellow (Object) # # #Parent node: Server_ServerCapabilities #...
# This example shows how to browse objects under the "Objects" node and display notifiers. # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc # Import .NET namespaces. from OpcLabs.EasyOpc.UA import * from OpcLabs.EasyOpc.UA.AddressSpace import * from OpcLabs.EasyOpc.UA.AddressSpace.Standard import * from OpcLabs.EasyOpc.UA.OperationModel import * # Define which server we will work with. endpointDescriptor = UAEndpointDescriptor('opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer') def browseFrom(nodeDescriptor): global endpointDescriptor print() print() print('Parent node: ', nodeDescriptor, sep='') # Instantiate the client object. client = EasyUAClient() # Obtain notifiers. notifierNodeElementCollection = IEasyUAClientExtension.BrowseNotifiers(client, endpointDescriptor, nodeDescriptor) # Display notifiers. if notifierNodeElementCollection.Count != 0: print('') print('Notifiers:') for notifierNodeElement in notifierNodeElementCollection: print(notifierNodeElement) # Obtain objects. objectNodeElementCollection = IEasyUAClientExtension.BrowseObjects(client, endpointDescriptor, nodeDescriptor) # Recurse. for objectNodeElement in objectNodeElementCollection: browseFrom(objectNodeElement.ToUANodeDescriptor()) # Start browsing from the "Objects" node. try: browseFrom(UANodeDescriptor(UAObjectIds.ObjectsFolder)) except UAException as uaException: print('*** Failure: ' + uaException.GetBaseException().Message) exit() print() print('Finished.')
' This example shows how to browse objects under the "Objects" node and display notifiers. Imports OpcLabs.EasyOpc.UA Imports OpcLabs.EasyOpc.UA.AddressSpace Imports OpcLabs.EasyOpc.UA.AddressSpace.Standard Imports OpcLabs.EasyOpc.UA.OperationModel Namespace AlarmsAndConditions Friend Class BrowseNotifiers Public Shared Sub Overload2() ' Start browsing from the "Objects" node Try BrowseFrom(UAObjectIds.ObjectsFolder) Catch uaException As UAException Console.WriteLine("*** Failure: {0}", uaException.GetBaseException.Message) End Try End Sub Private Shared Sub BrowseFrom(nodeDescriptor As UANodeDescriptor) Console.WriteLine() Console.WriteLine() Console.WriteLine("Parent node: {0}", nodeDescriptor) ' Instantiate the client object Dim client = New EasyUAClient() ' Obtain notifiers Dim notifierNodeElementCollection As UANodeElementCollection = client.BrowseNotifiers( _ "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer", _ nodeDescriptor) ' Display notifiers Console.WriteLine() Console.WriteLine("Notifiers:") For Each notifierNodeElement As UANodeElement In notifierNodeElementCollection Console.WriteLine(notifierNodeElement) Next notifierNodeElement ' Obtain objects Dim objectNodeElementCollection = client.BrowseObjects( _ "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer", _ nodeDescriptor) ' Recurse For Each objectNodeElement As UANodeElement In objectNodeElementCollection BrowseFrom(objectNodeElement) Next objectNodeElement End Sub End Class End Namespace
// This example shows how to browse objects under the "Objects" node and display notifiers. class procedure BrowseNotifiers.Main; var ObjectNodeId: _UANodeId; begin ObjectNodeId := CoUANodeId.Create; ObjectNodeId.StandardName := 'Objects'; try BrowseFrom(ObjectNodeId); except on E: EOleException do begin WriteLn(Format('*** Failure: %s', [E.GetBaseException.Message])); Exit; end; end; end; class procedure BrowseNotifiers.BrowseFrom(NodeId: _UANodeId); var Client: OpcLabs_EasyOpcUA_TLB._EasyUAClient; Count: Cardinal; Element: OleVariant; EndpointDescriptor: string; NotifierNodeElement: _UANodeElement; NotifierNodeElementEnumerator: IEnumVariant; NotifierNodeElements: _UANodeElementCollection; ObjectNodeElement: _UANodeElement; ObjectNodeElementEnumerator: IEnumVariant; ObjectNodeElements: _UANodeElementCollection; begin EndpointDescriptor := 'opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer'; WriteLn; WriteLn; WriteLn('Parent node: ', NodeId.ToString); // Instantiate the client object Client := CoEasyUAClient.Create; // Obtain notifiers NotifierNodeElements := Client.BrowseNotifiers(EndpointDescriptor, NodeId.ExpandedText); // Display notifires if NotifierNodeElements.Count <> 0 then begin WriteLn; WriteLn('Notifiers:'); NotifierNodeElementEnumerator := NotifierNodeElements.GetEnumerator; while (NotifierNodeElementEnumerator.Next(1, Element, Count) = S_OK) do begin NotifierNodeElement := IUnknown(Element) as _UANodeElement; WriteLn(NotifierNodeElement.ToString); end; end; // Obtain objects ObjectNodeElements := Client.BrowseObjects(EndpointDescriptor, NodeId.ExpandedText); // Recurse ObjectNodeElementEnumerator := ObjectNodeElements.GetEnumerator; while (ObjectNodeElementEnumerator.Next(1, Element, Count) = S_OK) do begin ObjectNodeElement := IUnknown(Element) as _UANodeElement; BrowseFrom(ObjectNodeElement.NodeId); end; end; // Example output (truncated): // // //Parent node: ObjectsFolder // // //Parent node: Server // //Notifiers: //Green -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Green (Object) //Yellow -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Yellow (Object) // // //Parent node: Server_ServerCapabilities //...
// This example shows how to browse objects under the "Objects" node and display notifiers. // Start browsing from the "Objects" node $ObjectNodeId = new COM("OpcLabs.EasyOpc.UA.AddressSpace.UANodeId"); $ObjectNodeId->StandardName = "Objects"; try { BrowseFrom($ObjectNodeId); } catch (com_exception $e) { printf("*** Failure: %s\n", $e->getMessage()); exit(); } function BrowseFrom($NodeId) { $EndpointDescriptor = "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer"; printf("\n"); printf("\n"); printf("Parent node: %s\n", $NodeId); // Instantiate the client object $Client = new COM("OpcLabs.EasyOpc.UA.EasyUAClient"); // Obtain notifiers $NotifierNodeElements = $Client->BrowseNotifiers($EndpointDescriptor, $NodeId->ExpandedText); // Display notifires if ($NotifierNodeElements->Count != 0) { printf("\n"); printf("Notifiers:\n"); foreach ($NotifierNodeElements as $NotifierNodeElement) { printf("%s\n", $NotifierNodeElement); } } // Obtain objects $ObjectNodeElements = $Client->BrowseObjects($EndpointDescriptor, $NodeId->ExpandedText); // Recurse foreach ($ObjectNodeElements as $ObjectNodeElement) { BrowseFrom($ObjectNodeElement->NodeId); } } // Example output (truncated): // // //Parent node: ObjectsFolder // // //Parent node: Server // //Notifiers: //Green -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Green (Object) //Yellow -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Yellow (Object) // // //Parent node: Server_ServerCapabilities //...
Rem This example shows how to browse objects under the "Objects" node and display notifiers. Option Explicit ' Start browsing from the "Objects" node Dim ObjectsNodeId: Set ObjectsNodeId = CreateObject("OpcLabs.EasyOpc.UA.AddressSpace.UANodeId") ObjectsNodeId.StandardName = "Objects" On Error Resume Next BrowseFrom ObjectsNodeId If Err.Number <> 0 Then WScript.Echo "*** Failure: " & Err.Source & ": " & Err.Description WScript.Quit End If On Error Goto 0 Sub BrowseFrom(NodeId) Dim endpointDescriptor endpointDescriptor = "opc.tcp://opcua.demo-this.com:62544/Quickstarts/AlarmConditionServer" WScript.Echo WScript.Echo WScript.Echo "Parent node: " & NodeId ' Instantiate the client object Dim Client: Set Client = CreateObject("OpcLabs.EasyOpc.UA.EasyUAClient") ' Obtain notifiers Dim NotifierNodeElementCollection: Set NotifierNodeElementCollection = Client.BrowseNotifiers( _ endpointDescriptor, NodeId.ExpandedText) ' Display notifiers If NotifierNodeElementCollection.Count <> 0 Then WScript.Echo WScript.Echo "Notifiers:" Dim NotifierNodeElement: For Each NotifierNodeElement In NotifierNodeElementCollection WScript.Echo NotifierNodeElement Next End If ' Obtain objects Dim ObjectNodeElementCollection: Set ObjectNodeElementCollection = Client.BrowseObjects( _ endpointDescriptor, NodeId.ExpandedText) ' Recurse Dim ObjectNodeElement: For Each ObjectNodeElement In ObjectNodeElementCollection BrowseFrom ObjectNodeElement.NodeId Next End Sub ' Example output (truncated): ' ' 'Parent node: ObjectsFolder ' ' 'Parent node: Server ' 'Notifiers: 'Green -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Green (Object) 'Yellow -> nsu=http://opcfoundation.org/Quickstarts/AlarmCondition ;ns=2;s=0:/Yellow (Object) ' ' 'Parent node: Server_ServerCapabilities '...
Copyright © 2004-2023 CODE Consulting and Development, s.r.o., Plzen. All rights reserved. Web page: www.opclabs.com
Send Documentation Feedback. Resources: Knowledge Base. Technical support: Online Forums, FAQ.